#ifndef ROUTEMANAGER_H
#define ROUTEMANAGER_H

#include "./Common.h"

namespace Reactor
{
class RouteNode;

struct MOUDLE_API RouteManagerPrivate;
class MOUDLE_API RouteManager : public TSingleton<RouteManager>
{
	friend TSingleton<RouteManager>;
public:
	void add(std::shared_ptr<RouteNode> _routeNode);
	std::shared_ptr<RouteNode> route(const std::string& _routeKey)const;
protected:
	int index(const std::string& _routeKey)const;
	RouteManager();

private:
	std::shared_ptr<RouteManagerPrivate> d;
};

}

#endif//ROUTEMANAGER_H
